package com.bf.electroplating.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bf.electroplating.pojo.entity.ExhaustGasWarning;
import com.bf.electroplating.pojo.entity.WasteGasMonitoring;
import com.bf.electroplating.pojo.vo.exhaustGasWarning.ExhaustGasWarningHandleDTO;
import com.bf.electroplating.pojo.vo.exhaustGasWarning.ExhaustGasWarningQueryDTO;
import com.bf.electroplating.pojo.vo.exhaustGasWarning.ExhaustGasWarningStatsVO;
import com.bf.electroplating.pojo.vo.exhaustGasWarning.ExhaustGasWarningVO;

/**
 * 废气处理设施监控预警服务接口
 */
public interface IExhaustGasWarningService extends IService<ExhaustGasWarning> {

    /**
     * 检查并生成废气预警
     * @param wasteGasMonitoring 废气监测数据
     * @param monitoringValue 监测值
     * @param factorUnit 因子单位（PH或ORP）
     */
    void checkAndGenerateWarning(WasteGasMonitoring wasteGasMonitoring, 
                                 java.math.BigDecimal monitoringValue, 
                                 String factorUnit);

    /**
     * 分页查询废气预警
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    Page<ExhaustGasWarningVO> pageList(ExhaustGasWarningQueryDTO queryDTO);

    /**
     * 根据ID获取预警详情
     * @param id 预警ID
     * @return 预警详情
     */
    ExhaustGasWarningVO getDetail(String id);

    /**
     * 处置预警
     * @param handleDTO 处置信息
     * @return 处置结果
     */
    Boolean handleWarning(ExhaustGasWarningHandleDTO handleDTO);

    /**
     * 批量处置预警
     * @param ids 预警ID列表
     * @param handleDTO 处置信息
     * @return 处置结果
     */
    Boolean batchHandleWarning(String[] ids, ExhaustGasWarningHandleDTO handleDTO);

    /**
     * 删除预警
     * @param id 预警ID
     * @return 删除结果
     */
    Boolean deleteWarning(String id);

    /**
     * 批量删除预警
     * @param ids 预警ID列表
     * @return 删除结果
     */
    Boolean batchDeleteWarning(String[] ids);

    /**
     * 获取预警统计信息
     * @return 统计信息
     */
    ExhaustGasWarningStatsVO getWarningStats();
}